package org.qiyu.live.living.interfaces.rpc;

import org.dubbo.live.common.interfaces.dto.PageWrapper;
import org.qiyu.live.living.interfaces.dto.LivingRoomReqDTO;
import org.qiyu.live.living.interfaces.dto.LivingRoomRespDTO;

import java.util.List;

/**
 * @Description: //todo
 * @Author: 张广焱
 * @Date: 2024-05-17 下午10:05
 */
public interface ILivingRoomRpc {
    /**
     * 支持根据roomId查询出批量的userId（set）存储，3000个人，元素非常多，O(n)
     *
     * @param livingRoomReqDTO
     * @return
     */
    List<Long> queryUserIdByRoomId(LivingRoomReqDTO livingRoomReqDTO);
    /**
     * @Description: 直播间列表分页查询
     * @Author: 张广焱
     * @Date: 2024-05-19  20:47:12
     */
    PageWrapper<LivingRoomRespDTO> list(LivingRoomReqDTO livingRoomReqDTO);
    /**
     * @Description:开启直播间
     * @Author: 张广焱
     * @Date: 2024-05-17  22:13:43
     */
    Integer startLivingRoom(LivingRoomReqDTO livingRoomReqDTO);

    /**
     * @Description:关播
     * @Author: 张广焱
     * @Date: 2024-05-18  00:25:38
     */
    boolean closeLiving(LivingRoomReqDTO livingRoomReqDTO);

    /**
     * @Description: 根据用户id 查询用户是否正在开播
     * @Author: 张广焱
     * @Date: 2024-05-18  13:17:46
     */
    LivingRoomRespDTO queryByRoomId(Integer roomId);
}
